var first_exec = true;
var logged = false;


var default_usr = {
	id:"defusr",
	nome:"Visitante",
	login:"Visitante",
	senha:"----",
	empresa:"Empresa",
	template:"azul"
}

var usuario = {}

var funcoes = {
	init: function(){		
		//
		// Área de Login/Logoff ====================================		
		//
		$$("go_login").attachEvent("onItemClick", function(){
			if(!logged){
				load_window(true);
				$$("txt_usuario").focus();
			}else{
				var ver = webix.confirm("Deseja realmente sair?");
				if(ver){	
					changes(default_usr);
					exec_logoff();	
				}	
			}
		});

		$$("btn_entrar").attachEvent("onItemClick", function(){
			exec_login();
		})
		// ================================================================

		//
		// EVENTOS ========================================================
		//
		$$("btn_cancelar").attachEvent("onItemClick", function(){
			load_window(false);
		})

		$$("new_cancelar").attachEvent("onItemClick", function(){
			load_window(false);	
		})

		$$("new_cadastrar").attachEvent("onItemClick", function(){	
			var usuario = {};
			usuario.nome = $$("new_nome").getValue();
			usuario.login = $$("new_login").getValue();
			usuario.senha = $$("new_senha").getValue();
			usuario.empresa = "Nome da Empresa";
			usuario.template = "Azul";

			var usr = recebe_storage(usuario.login);
			if(usr){
				return webix.message({type:"error", text:"Usuario já cadastrado!"});	
			}else{
				envia_storage(usuario);
			}

			webix.alert("Usuário foi cadastrado no sistema");

			load_window(false);		
		})

		$$("btn_novo").attachEvent("onItemClick", function(){
			$$("login_form").hide();
			$$("cad_form").show();			
		})

		$$("prop_salvar").attachEvent("onItemClick", function(){
			var valores = $$("propriedades").getValues();
			alert(valores.prop_nome)
			/*
			usuario.nome = valores['prop_nome'];
			alert(valores['prop_nome']);
			usuario.login = valores.pro_login;
			usuario.senha = valores.pro_senha;
			usuario.empresa = valores.prop_empresa;
			usuario.template = valores.template;

			envia_storage(usuario);
			*/			
		})
		//*****************************************************************

		
	}
};

//
//===== LOGIN DO SISTEMA ================================
//
// - LOGIN - Efetua o logoff do sistema
var exec_logoff = function(){
	$$("ui_conf").hide();
	logged = false;
}

// - LOGIN - Verifica se usuário existe. Se existir, ele permitirá a entrada.
var exec_login = function(){
	var usr = recebe_storage($$("txt_usuario").getValue());
	if(!usr) {
		return webix.message({ type:"error", text:"<p>Usuário não cadastrado</br></br>Crie um usuário para utilizar o sistema<p>" });
	}
	if(usr.senha != $$("txt_senha").getValue()) {
		return webix.message ({type:"error", text:"Senha incoreta"});
	}
		setUsuario(usr);
		webix.message("<p>Seja bem vindo, </br>" + usuario.nome +"!<p>");
		$$("ui_conf").show();
		changes(usuario);
		logged = true;

	

	//Default
	load_window(false);
}

// - LOGIN - Abre/Fecha a janela de login do sistema
var load_window = function(state){
	if(state){
		$$('ui_window').show();
	}else{
		$$('cad_form').hide();
		$$('login_form').show();
		$$('ui_window').hide();
	}
}

// - LOGIN - Altera as configurações de visualização do usuário
var changes = function(user){
	$$("nome_empresa").define("label", user.empresa);
	$$("go_login").define("label", user.nome);

	ini_props(user);

	$$("nome_empresa").refresh();
	$$("go_login").refresh();
}

var ini_props = function(user){
	$$("propriedades").setValues({
		prop_nome:user.nome,
		prop_login:user.login,
		prop_empresa:user.empresa,
		prop_temp:user.template,
		prop_senha:user.senha
	})
	$$("propriedades").refresh();	
}
// ===============================================================

var envia_storage = function(elemento){
	var ar = localStorage.usr; //Armazena os dados do LC na variável ar
	ar = ar ? eval(ar) : []; //eval: Converte a string em objeto
	ar.push(elemento); //Adiciona o objeto na ultima posição da variável ar
	localStorage.usr = ar.toSource(); //Converte o objeto em string e envia para o LC	
}

var lc = function(idx) {
	//Se houver algo no LC, ele retorna os dados. Se não, retorna um novo array
	var a = localStorage.usr ? eval(localStorage.usr) : []; 
	return idx ? (a.length < idx ? a[idx] : null) : a;
}

var recebe_storage = function(login){
	var ar = lc();
	for(var i = 0; i < ar.length; i++)
		if(ar[i].login == login)
			return ar[i];
	return null;
}

var setUsuario = function(objeto){
	usuario.nome = objeto.nome;
	usuario.login = objeto.login;
	usuario.senha = objeto.senha;
	usuario.template = objeto.template;
	usuario.empresa = objeto.empresa;
}